package com.springcloud.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

/**
 * 服务熔断
 * 熔断机制是应对雪崩效应的一种微服务链路保护机制。
 * 当扇出链路的某个微服务不可用或者响应时间太长时，会进行服务的降级，
 * 进而熔断该节点微服务的调用，快速返回"错误"的响应信息。
 * 当检测到该节点微服务调用响应正常后恢复调用链路。
 * 在SpringCloud框架里熔断机制通过Hystrix实现。
 * Hystrix会监控微服务间调用的状况，当失败的调用到一定阈值，缺省是5秒内20次调用失败就会启动熔断机制。
 * 熔断机制的注解是@HystrixCommand。
 */
@SpringBootApplication
@EnableEurekaClient //本服务启动后会自动注册进eureka中
@EnableDiscoveryClient//服务发现
@EnableCircuitBreaker//对hystrixR熔断机制的支持
public class DeptProvider8001_hystrix_App {
    public static void main(String[] args) {
        SpringApplication.run(DeptProvider8001_hystrix_App.class, args);
    }
}
